﻿Imports DNP.GestionComercial.BE
Imports DNP.DevNetPeru.Data
Imports System.Data.SqlClient
Public Class TerminalVentaDAL
    Public Function Guardar(ByVal pObjeto As TerminalVentaBE, ByVal usuario As String) As RespuestaBE

        Dim oRespuesta As New RespuestaBE
        Dim mensaje As String

        Try

            Using cmd As New SqlCommand("COM_INS_COM_TERMINAL_VENTA")

                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_NTVE_CODIGO", SqlDbType.Int).Value = pObjeto.NTVE_CODIGO
                cmd.Parameters.Add("p_CTVE_IDENTIFICADOR", SqlDbType.VarChar).Value = pObjeto.CTVE_IDENTIFICADOR
                cmd.Parameters.Add("p_CTVE_CARACTERISTICAS", SqlDbType.VarChar).Value = pObjeto.CTVE_CARACTERISTICAS
                cmd.Parameters.Add("p_CAUDI_USR_INS", SqlDbType.VarChar).Value = usuario
                cmd.Parameters.Add("p_MENSAJE", SqlDbType.VarChar, 2000).Direction = ParameterDirection.Output

                BaseDatos.Execute(cmd)

                mensaje = Convert.ToString(cmd.Parameters("p_MENSAJE").Value)
                If mensaje.StartsWith("-1@") Then
                    oRespuesta.Respuesta = False
                    oRespuesta.Mensaje = mensaje.Split("@")(1)
                Else
                    oRespuesta.Respuesta = True
                    oRespuesta.Mensaje = mensaje
                End If
            End Using
        Catch ex As Exception
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString
        End Try
        Return oRespuesta
    End Function

    Public Function Eliminar(ByVal pObjeto As PARAMETROBE, ByVal usuario As String) As RespuestaBE

        Dim oRespuesta As New RespuestaBE
        Dim mensaje As String
        Try
            Using cmd As New SqlCommand("COM_DEL_COM_TERMINAL_VENTA")
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_NTVE_CODIGO", SqlDbType.Int).Value = pObjeto.PARAMETRO01
                cmd.Parameters.Add("p_USUARIO", SqlDbType.VarChar).Value = usuario
                cmd.Parameters.Add("p_MENSAJE", SqlDbType.VarChar, 2000).Direction = ParameterDirection.Output
                BaseDatos.Execute(cmd)
                mensaje = Convert.ToString(cmd.Parameters("p_MENSAJE").Value)
                If mensaje.StartsWith("-1@") Then
                    oRespuesta.Respuesta = False
                    oRespuesta.Mensaje = mensaje.Split("@")(1)
                Else
                    oRespuesta.Respuesta = True
                    oRespuesta.Mensaje = mensaje
                End If
            End Using
        Catch ex As Exception
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString
        End Try
        Return oRespuesta

    End Function

    Public Function ListarTodos(ByVal pParametro As PARAMETROBE) As RespuestaBE

        Dim lstObjeto As New List(Of TerminalVentaBE)
        Dim oRespuesta As New RespuestaBE
        Dim dt As DataTable

        Try
            Using cmd As New SqlCommand("COM_SEL_COM_TERMINAL_VENTA")
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_BUSCAR", SqlDbType.VarChar).Value = pParametro.PARAMETRO01
                Using dr As SqlDataReader = BaseDatos.GetDataReader(cmd)
                    If dr.HasRows Then
                        ' Return ObtenerUbigeo(dr)
                        lstObjeto = Utils.CreaLista(Of TerminalVentaBE)(lstObjeto, dr)
                        oRespuesta.ValorRertono = lstObjeto
                        oRespuesta.Respuesta = True
                        Return oRespuesta
                    Else
                        oRespuesta.ValorRertono = lstObjeto
                        oRespuesta.Respuesta = True
                        Return oRespuesta
                    End If
                End Using
            End Using

        Catch ex As Exception
            oRespuesta.ValorRertono = lstObjeto
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString '"msgErrorCargarInfoBD" 
        End Try
        Return oRespuesta
    End Function

    Public Function Obtener(ByVal codigo As String) As RespuestaBE
        Dim obj As New TerminalVentaBE
        Dim oRespuesta As New RespuestaBE
        Dim dt As DataTable
        Try
            Using cmd As New SqlCommand("COM_SEL_COM_TERMINAL_VENTAXCODIGO")
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_CODIGO", SqlDbType.VarChar).Value = codigo
                Using dr As SqlDataReader = BaseDatos.GetDataReader(cmd)
                    If dr.Read Then
                        ' Return ObtenerUbigeo(dr)
                        obj = Utils.CreaObjeto(Of TerminalVentaBE)(obj, dr)
                        oRespuesta.ValorRertono = obj
                        oRespuesta.Respuesta = True

                        Return oRespuesta
                    Else
                        oRespuesta.ValorRertono = obj
                        oRespuesta.Respuesta = True

                        Return oRespuesta
                    End If
                End Using
            End Using
        Catch ex As Exception
            oRespuesta.ValorRertono = obj
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString '"msgErrorCargarInfoBD" 
        End Try
        Return oRespuesta

    End Function

    Private Function LLenarEntidad(ByVal pdtrSource As System.Data.DataRow) As TerminalVentaBE
        Dim abeResultado As New TerminalVentaBE

        With abeResultado
            If pdtrSource.Table.Columns.Contains("NTVE_CODIGO") Then If IsDBNull(pdtrSource("NTVE_CODIGO")) Then .NTVE_CODIGO = 0 Else .NTVE_CODIGO = pdtrSource("NTVE_CODIGO")
            If pdtrSource.Table.Columns.Contains("CTVE_IDENTIFICADOR") Then If IsDBNull(pdtrSource("CTVE_IDENTIFICADOR")) Then .CTVE_IDENTIFICADOR = String.Empty Else .CTVE_IDENTIFICADOR = pdtrSource("CTVE_IDENTIFICADOR")
            If pdtrSource.Table.Columns.Contains("CTVE_CARACTERISTICAS") Then If IsDBNull(pdtrSource("CTVE_CARACTERISTICAS")) Then .CTVE_CARACTERISTICAS = String.Empty Else .CTVE_CARACTERISTICAS = pdtrSource("CTVE_CARACTERISTICAS")
            If pdtrSource.Table.Columns.Contains("CAUDI_USR_INS") Then If IsDBNull(pdtrSource("CAUDI_USR_INS")) Then .CAUDI_USR_INS = String.Empty Else .CAUDI_USR_INS = pdtrSource("CAUDI_USR_INS")
      

        End With
        Return abeResultado

    End Function
End Class
